Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO


■システムポート
対象	全機種
解説  o システムポートは、16本の入力信号線、8本の出力信号線から構成されており、
	DIP SW,RS-232C信号線,メモリパリティエラー状態の取得や、ブザーON/OFF,
	RS-232Cの割り込み発生要因の選択などのために使用する。
      o システムポートは、1個の8255A(相当品)を使用している。
      o システムポートが使用するI/Oアドレスは以下の通り。
	-----------+----+---+--------------------------------------------------
	I/Oアドレス|幅  |R/W|内容
	-----------+----+---+--------------------------------------------------
	0031h      |BYTE|R/W|8255A PORT A リード/ライトデータ
	0033h      |BYTE|R/W|8255A PORT B リード/ライトデータ
	0035h      |BYTE|R/W|8255A PORT C リード/ライトデータ
	0037h      |BYTE| W |8255A コントロールレジスタ
	-----------+----+---+--------------------------------------------------
関連	I/O 0030h
	I/O 0032h
	I/O 0050h
	I/O 0052h


I/O	0031h
名前	8255A PORT A リード/ライトデータ
対象	全機種
チップ	8255A相当
機能
	[READ]	PORT Aリード
	bit 7: DIP SW 2-8
	bit 6: DIP SW 2-7
	bit 5: DIP SW 2-6
	bit 4: DIP SW 2-5
	bit 3: DIP SW 2-4
	bit 2: DIP SW 2-3
	bit 1: DIP SW 2-2
	bit 0: DIP SW 2-1
		1= OFF
		0= ON
	[WRITE]	PORT Aライト
		■[PC-98LT・HA,PC-H98,PC-9821Ap・As・Ae以外]
		無動作(モード0入力に設定されているため)
		■[PC-98LT・HA,PC-H98,PC-9821Ap・As・Ae]
		PORT Aの値を設定	[Undocumented]
解説  o PC-9800本体のDIP SW 2の状態を示す。
      o	DIP SWの一部または全部がソフトウェアDIP SWになっている機種があるが、
	ハードウェアDIP SWの機種と同じように、このポートから設定状態を読む
	ことができる。
      o PC-98XAでは、このポートに接続されているDIP SWの名称はDIP SW 1-1〜1-8。
      o PC-98LT・HAでは、bit 4のみ使用する。PC-98LTはswitch.exeで、PC-98HAは
	システムメニュー(CTRL+GRPH+HELPで起動)でbit 4の状態を変更可能。
      o PC-98LT・HA,PC-H98,PC-9821Ap・As・Ae以外では、8255AのPORT Aを
	「モード0 入力」に設定する。
      u PC-98LT・HA,PC-H98,PC-9821Ap・As・Aeでは、8255AのPORT Aをモード0出力に
	設定する。DIP SW 2の状態を保持する8ビット分のRAMとして使用する。起動時
	に、バックアップされたメモリからソフトウェアDIP SWの設定内容をPORT A
	に書き込む。
	これらの機種では、PORT Aは常に書き込み可能なので、不用意に書き換えを
	行うと、DIP SW 2の設定を正しく読み出せなくなる。
      o PC-98LT・HAはメモリスイッチ10hにソフトウェアDIP SWの設定内容を
	保持している。通常111x0011bを示す。bit 4はユーザが変更可能。
関連	DIP SW 2-1〜2-8


I/O	0033h
名前	8255A PORT B リードデータ
対象	全機種
チップ	8255A相当
機能	
	[READ]	PORT Bリード
	bit 7: CI# - RS-232CのCI信号線の状態■[PC-9801初代を除く]
		1= OFF
		0= ON
		* PC-9801初代では未定義
		関連	I/O 0030h,0032h
	bit 6: CS# - RS-232CのCS信号線の状態
		1= OFF
		0= ON
		関連	I/O 0030h,0032h
	bit 5: CD# - RS-232CのCD信号線の状態
		1= OFF
		0= ON
		関連	I/O 0030h,0032h
	bit 4: INT3 - 拡張バスのINT3信号線の状態■[ノーマル]
		1= INT3信号がアクティブ
		0= INT3信号がインアクティブ
		
		関連	INT 11h
	bit 3: CRTT - CRTタイプ■[ノーマル]
		1= 高解像度(DIP SW 1-1 ON)
		0= 標準解像度(DIP SW 1-1 OFF)
		* ハイレゾ兼用機,PC-H98,ラップトップ,ノート,その他デジタル
		  RGB出力を持たない機種では、標準解像度ディスプレイが使用でき
		  ないため1に固定。
		
		関連	I/O 006Eh
		      DIP SW 1-1
	bit 4,3: SHUT0,1 ■[ハイレゾ]
		* システムポートPORT C bit 7,5に接続されている。テクニカル
		  データブックの一部に、INT3,CRTTと兼用されているような記述が
		  あるが、ハイレゾモードのときは常にSHUT0,1として機能している
		  模様。
		
		
		
		関連	I/O 0035h bit 7,5
	bit 2: IMCK - 本体内メモリのパリティエラー発生状態
		1= あり
		0= なし
		関連	I/O 0050h,0052h
		      INT 02h
	bit 1: EMCK - 拡張スロットに増設したメモリのパリティエラー発生状態
		1= あり
		0= なし
		関連	I/O 0050h,0052h
		      INT 02h
	bit 0: CDAT - カレンダ時計の読み出しデータ
		* カレンダ時計LSIのデータアウト端子の読み出し用
		関連	I/O 0020h
	[WRITE]	PORT Bライト
		無動作
解説  o 8255AのPORT Bをモード0入力に設定して使用する。
      o PC-H98では、パリティエラー発生時にこのポートをリードすると、
	bit 2,1がクリアされる。
関連	I/O 98F0h


I/O	0035h
名前	8255A PORT C リード/ライトデータ
対象	全機種
チップ	8255A相当
機能
	[READ/WRITE]	PORT Cリード/ライト
	bit 7: SHUT0 - シャットダウンフラグ0■[80286以降のCPU搭載機]
		関連	I/O 0033h bit 4
		      I/O 00F0h
	bit 6: PSTBM - プリンタのPSTB#信号のマスク■[PC-9801初代以外]
		1= マスクする
		0= マスクしない
		* PC-9801初代では未使用。I/O 0094h bit 4で制御する。
		関連	I/O 0094h bit 4
	bit 5: SHUT1 - シャットダウンフラグ1■[80286以降のCPU搭載機]
		関連	I/O 0033h bit 3
		      I/O 00F0h
	bit 5: ROMドライブ書き込み許可■[PC-98LT・HA] ■Undocumented
		1= ROMドライブ書き込み許可
		0= ROMドライブ書き込み禁止
		
		関連	INT 1Fh - Function 95h
	bit 4: MCHKEN - RAMのパリティチェック
		1= 有効
		0= 無効
		* PC-9801Uでは未使用。	
		  PC-H98では常に1と同等の動作。
		関連	I/O 0050h,0052h,98F0h
	bit 3: BUZ - ブザー
		1= 停止
		0= 鳴動
		* 内蔵のビープ音のON/OFFを行う。
		関連	I/O 0073h,3FDBh
	bit 2: TXRE - RS-232Cの8251AのTXRDYによる割り込み要求
		1= する
		0= しない
		関連	I/O 0030h,0032h
	bit 1: TXEE - RS-232Cの8251AのTXEMPTYによる割り込み要求
		1= する
		0= しない
		関連	I/O 0030h,0032h
	bit 0: RXRE - RS-232Cの8251AのRXRDYによる割り込み要求
		1= する
		0= しない
		関連	I/O 0030h,0032h
解説  o 8255AのPORT Cをモード0出力に設定して使用する。I/O 0037h(コントロール
	レジスタ)にコマンドを与えることで、ビット毎にセット/リセットすることも
	可能。
      o 80286以降のCPU搭載機では、bit 7,5のSHUT0,SHUT1ポートの状態で、
	I/O 00F0hにOUTしたあとの動作が変化する。
	-----+-----+---------------------------------------------------
	SHUT0|SHUT1|動作
	-----+-----+---------------------------------------------------
	  1  |  1  |リセット動作(ITF,BIOSが初期化動作を行う)
	-----+-----+---------------------------------------------------
	  1  |  0  |設定禁止(画面にSYSTEM SHUTDOWNを表示して停止)
	-----+-----+---------------------------------------------------
	  0  |  X  |CPUリセット後、プログラム実行を継続する。
	     |     |ITFは以下のような処理を行うので、ユーザプログラムは
	     |     |予め戻りアドレスをPUSHしたあと、0000:0404h(DWORD)に
	     |     |SS:SPを保存しておく。
	     |     |SS←[0000:0406h]
	     |     |SP←[0000:0404h]
	     |     |RETF
	-----+-----+---------------------------------------------------
関連	


I/O	0037h
名前	コントロールレジスタ
機能
	[READ]	なし
	[WRITE]	コントロールレジスタライト
	[PORT C(I/O 0035h) bit 0〜7制御コマンドの一覧]
	-------+---------------------------------------------------------------
	出力値 |動作
	-------+---------------------------------------------------------------
	00h,01h|RS-232Cの8251AのRXRDYによる割り込み要求 00h=しない,01h=する
	02h,03h|RS-232Cの8251AのTXEMPTYによる割り込み要求 02h=しない,03h=する
	04h,05h|RS-232Cの8251AのTXRDYによる割り込み要求 04h=しない,05h=する
	06h,07h|ブザー 06h=鳴動,07h=停止
	08h,09h|RAMのパリティチェック 08h=無効,09h=有効
	0Ah,0Bh|SHUT1 0Ah=0,0Bh=1
	0Ch,0Dh|プリンタのPSTB#信号のマスク 0Ch=マスクしない,0Dh=マスクする
	0Eh,0Fh|SHUT0 0Eh=0,0Fh=1
	-------+---------------------------------------------------------------
解説  o 8255Aのコントロールレジスタ。モード設定や、PORT C(I/O 0035h)のビット
	毎の操作を行うことができる。詳細は8255Aのデータシートを参照。
関連